package com.solution.admin.company.dao.impl;

import java.util.Map;

import org.springframework.stereotype.Repository;

import com.solution.admin.company.dao.CompanyInvoiceDao;
import com.solution.admin.company.entity.CompanyInvoiceEntity;
import com.solution.common.dao.impl.BaseDaoImpl;

/**
 * 公司开票信息dao实现
 * @author xkl
 * @date 2018年1月26日 下午3:32:57
 */
@Repository
public class CompanyInvoiceDaoImpl extends BaseDaoImpl<CompanyInvoiceEntity> implements CompanyInvoiceDao {
	
	/**
	 * 根据公司ID取消默认
	 * @param paramMap
	 * @return
	 * @author xkl
	 * @date 2018年1月28日 下午1:24:03
	 */
	@Override
	public Integer updateNoDefaultInvoice(Map<String, Object> paramMap) {
		return getSessionTemplate().update(getStatement("updateNoDefaultInvoice"), paramMap);
	}

	/**
	 * 设置默认
	 * @param paramMap
	 * @return
	 * @author xkl
	 * @date 2018年1月28日 下午1:24:36
	 */
	@Override
	public Integer updateDefaultInvoice(Map<String, Object> paramMap) {
		return getSessionTemplate().update(getStatement("updateDefaultInvoice"), paramMap);
	}

	/**
	 * 根据公司名称与ID获取发票信息
	 * @param paramMap
	 * @return
	 * @author xkl
	 * @date 2018年3月6日 下午4:14:48
	 */
	@Override
	public CompanyInvoiceEntity getByCompanyName(Map<String, Object> paramMap) {
		return getSessionTemplate().selectOne(getStatement("getByCompanyName"), paramMap);
	}
	
	
	/**
	 * 保存客户最后一次下单开票信息
	 * @param lastInvoice
	 * @return
	 */
	@Override
	public int saveLsatInvoice(CompanyInvoiceEntity lastInvoice){
		return getSessionTemplate().insert(getStatement("insertLastInvoice"), lastInvoice);
	}
	
	/**
	 * 查询客户最近一次下单开票信息
	 * @param customerId
	 * @return
	 */
	@Override
	public CompanyInvoiceEntity getLastInvoice(Long customerId){
		return getSessionTemplate().selectOne(getStatement("selectLastInvoice"), customerId);
	}
	
	/**
	 * 更新客户最近一次下单开票信息
	 * @param lastInvoice
	 * @return
	 */
	@Override
	public int updateLastInvoice(CompanyInvoiceEntity lastInvoice){
		return getSessionTemplate().update(getStatement("updateLastInvoice"), lastInvoice);
	}
	

}
